Software applications, such as virtual machines (VMs), may be executed by a group, or “cluster,” of host computing devices. Each VM creates an abstraction of physical computing resources, such as a processor and memory, of the host executing the VM and executes a “guest” operating system, which, in turn, executes one or more software applications. The abstracted resources may be functionally indistinguishable from the underlying physical resources to the guest operating system and software applications.
The amount of computing resources allocated to each VM on a host can be designated manually by an administrator of the cluster and/or automatically according to resource policies set by the administrator. In some clusters, an operator attempts to uniformly distribute, or “balance,” the use of computing resources, also known as the computing “load,” across multiple hosts. For example, cluster monitoring software may be used to monitor the load on hosts in the cluster and present load information to a user. The load information presented may include statistics, such as the load of each host in the cluster, an average load of hosts in the cluster, and/or a standard deviation of the loads in the cluster. Further, such software may determine and present load balancing recommendations, such as a recommendation that a VM be migrated from a host with a high load to a host with a lower load.